"""
Django测试运行脚本
用于运行Agent Boss的测试
"""

import os
import sys
import django
from django.conf import settings
from django.test.utils import get_runner

# 添加项目路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

# 设置Django设置
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'boss.settings')

def setup_django():
    """设置Django环境"""
    try:
        django.setup()
        print("✅ Django环境设置成功")
        return True
    except Exception as e:
        print(f"❌ Django环境设置失败: {e}")
        return False

def run_agent_boss_tests():
    """运行Agent Boss测试"""
    print("🚀 开始运行Agent Boss测试...")
    print("=" * 60)
    
    # 设置Django环境
    if not setup_django():
        return False
    
    try:
        # 获取测试运行器
        TestRunner = get_runner(settings)
        test_runner = TestRunner(verbosity=2, interactive=True)
        
        # 运行测试
        failures = test_runner.run_tests(['agent_boss'])
        
        print("=" * 60)
        if failures:
            print(f"❌ 测试失败: {failures} 个测试失败")
            return False
        else:
            print("🎉 所有测试通过！")
            return True
            
    except Exception as e:
        print(f"❌ 测试运行失败: {e}")
        return False

def run_quick_test():
    """运行快速测试"""
    print("🔧 运行快速测试...")
    
    try:
        # 导入并运行快速测试
        from agent_boss.quick_test import run_quick_test
        return run_quick_test()
    except ImportError as e:
        print(f"❌ 无法导入快速测试: {e}")
        return False
    except Exception as e:
        print(f"❌ 快速测试失败: {e}")
        return False

def main():
    """主函数"""
    print("🎯 Agent Boss 测试工具")
    print("=" * 60)
    print("选择测试模式:")
    print("1. 快速测试 (推荐)")
    print("2. 完整Django测试")
    print("3. 退出")
    print("=" * 60)
    
    while True:
        choice = input("请输入选择 (1-3): ").strip()
        
        if choice == '1':
            print("\n🚀 运行快速测试...")
            success = run_quick_test()
            break
        elif choice == '2':
            print("\n🚀 运行完整Django测试...")
            success = run_agent_boss_tests()
            break
        elif choice == '3':
            print("👋 退出测试")
            return
        else:
            print("❌ 无效选择，请输入1-3")
    
    # 显示结果
    print("\n" + "=" * 60)
    if success:
        print("🎉 测试完成！Agent Boss功能正常")
        print("\n📋 测试覆盖:")
        print("✅ API接口测试")
        print("✅ 认证验证测试")
        print("✅ 参数验证测试")
        print("✅ 文本处理测试")
        print("✅ 业务功能测试")
        print("\n🚀 可以开始使用Agent Boss API了！")
    else:
        print("❌ 测试失败，请检查代码")
        print("\n🔧 建议:")
        print("1. 检查Django设置")
        print("2. 检查依赖包安装")
        print("3. 检查数据库连接")
        print("4. 查看详细错误信息")

if __name__ == '__main__':
    main()
